/**
 * 
 */
package pruebas.tiendaOl.persistencia.jpa.repositorios;

import iades.fabricaciones.UnidadTrabajo;
import iades.fabricaciones.UnidadTrabajo.Operacion;

import java.util.List;

import javax.inject.Inject;
import javax.persistence.EntityManager;
import javax.persistence.Query;

import pruebas.tiendaOl.dominio.entidades.ItemGondola;
import pruebas.tiendaOl.dominio.entidades.TipoArticulo;
import pruebas.tiendaOl.dominio.repositorios.RepoGondola;

/** @author Gustavo */
public class RepoGondola_Jpa implements RepoGondola {

	@Inject
	private UnidadTrabajo ut;

	@Override
	public ItemGondola crearNuevoItem(TipoArticulo tipoArticulo, int cantidad) {
		ItemGondola nuevo = new ItemGondola(tipoArticulo, cantidad);
		ut.agregar(nuevo);
		return nuevo;
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<ItemGondola> conseguirTodos() {
		return ut.ejecutar(new Operacion<List<ItemGondola>, RuntimeException>() {
			@Override
			public List<ItemGondola> ejecutarme(UnidadTrabajo ut, EntityManager em) throws RuntimeException {
				Query query = em.createQuery("select ig from ItemGondola ig", ItemGondola.class);
				return query.getResultList();
			}
		});
	}

}
